package com.ruoyi.system.domain;

import java.math.BigDecimal;

import com.ruoyi.system.entity.AbdulBaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 员工服务计费项分类对象 employee_service_charge_category
 *
 * @author ruoyi
 * @date 2025-05-12
 */
@ApiModel("员工服务计费项分类对象")
public class EmployeeServiceChargeCategory extends AbdulBaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 分类的唯一标识符，自动递增 */
    @ApiModelProperty("主键ID")
    private Long id;

    /** 分类名称，计费项的分类名称 */
    @ApiModelProperty("分类名称")
    @Excel(name = "分类名称，计费项的分类名称")
    private String categoryName;

    /** 编号，分类的唯一编号，用于标识和查询 */
    @ApiModelProperty("编号")
    @Excel(name = "编号，分类的唯一编号，用于标识和查询")
    private String categoryCode;

    /** 排序，分类在列表中的显示顺序 */
    @ApiModelProperty("排序")
    @Excel(name = "排序，分类在列表中的显示顺序")
    private Long sortOrder;

    /** 项目数，该分类下包含的服务计费项数量 */
    @ApiModelProperty("项目数")
    @Excel(name = "项目数，该分类下包含的服务计费项数量")
    private Long projectCount;

    /** 用户小程序可选，用户是否可以在小程序中选择该分类下的服务 */
    @ApiModelProperty("用户小程序可选")
    @Excel(name = "用户小程序可选，用户是否可以在小程序中选择该分类下的服务")
    private Integer userMiniProgramSelectable;

    /** 整单折扣，针对整个订单的折扣比例（如0.90表示9折） */
    @ApiModelProperty("整单折扣")
    @Excel(name = "整单折扣，针对整个订单的折扣比例", readConverterExp = "如=0.90表示9折")
    private BigDecimal fullOrderDiscount;

    /** 整单折扣后继续参与会员折扣，整单折扣后是否继续应用会员折扣 */
    @ApiModelProperty("整单折扣后继续参与会员折扣")
    @Excel(name = "整单折扣后继续参与会员折扣，整单折扣后是否继续应用会员折扣")
    private Integer continueWithMembershipDiscount;

    /** 折扣方式，折扣的计算方式，百分比或固定金额 */
    @ApiModelProperty("折扣方式")
    @Excel(name = "折扣方式，折扣的计算方式，百分比或固定金额")
    private String discountMethod;

    /** 参与最低消费，该分类是否参与最低消费计算 */
    @ApiModelProperty("参与最低消费")
    @Excel(name = "参与最低消费，该分类是否参与最低消费计算")
    private Integer participateInMinimumConsumption;

    /** 参与会员积分，该分类是否参与会员积分计算 */
    @ApiModelProperty("参与会员积分")
    @Excel(name = "参与会员积分，该分类是否参与会员积分计算")
    private Integer participateInMembershipPoints;

    /** 参与手动优惠，该分类是否允许手动添加优惠 */
    @ApiModelProperty("参与手动优惠")
    @Excel(name = "参与手动优惠，该分类是否允许手动添加优惠")
    private Integer participateInManualDiscounts;

    /** 手机号 */
    @ApiModelProperty("手机号")
    @Excel(name = "手机号")
    private String phone;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }

    public void setCategoryName(String categoryName)
    {
        this.categoryName = categoryName;
    }

    public String getCategoryName()
    {
        return categoryName;
    }

    public void setCategoryCode(String categoryCode)
    {
        this.categoryCode = categoryCode;
    }

    public String getCategoryCode()
    {
        return categoryCode;
    }

    public void setSortOrder(Long sortOrder)
    {
        this.sortOrder = sortOrder;
    }

    public Long getSortOrder()
    {
        return sortOrder;
    }

    public void setProjectCount(Long projectCount)
    {
        this.projectCount = projectCount;
    }

    public Long getProjectCount()
    {
        return projectCount;
    }

    public void setUserMiniProgramSelectable(Integer userMiniProgramSelectable)
    {
        this.userMiniProgramSelectable = userMiniProgramSelectable;
    }

    public Integer getUserMiniProgramSelectable()
    {
        return userMiniProgramSelectable;
    }

    public void setFullOrderDiscount(BigDecimal fullOrderDiscount)
    {
        this.fullOrderDiscount = fullOrderDiscount;
    }

    public BigDecimal getFullOrderDiscount()
    {
        return fullOrderDiscount;
    }

    public void setContinueWithMembershipDiscount(Integer continueWithMembershipDiscount)
    {
        this.continueWithMembershipDiscount = continueWithMembershipDiscount;
    }

    public Integer getContinueWithMembershipDiscount()
    {
        return continueWithMembershipDiscount;
    }

    public void setDiscountMethod(String discountMethod)
    {
        this.discountMethod = discountMethod;
    }

    public String getDiscountMethod()
    {
        return discountMethod;
    }

    public void setParticipateInMinimumConsumption(Integer participateInMinimumConsumption)
    {
        this.participateInMinimumConsumption = participateInMinimumConsumption;
    }

    public Integer getParticipateInMinimumConsumption()
    {
        return participateInMinimumConsumption;
    }

    public void setParticipateInMembershipPoints(Integer participateInMembershipPoints)
    {
        this.participateInMembershipPoints = participateInMembershipPoints;
    }

    public Integer getParticipateInMembershipPoints()
    {
        return participateInMembershipPoints;
    }

    public void setParticipateInManualDiscounts(Integer participateInManualDiscounts)
    {
        this.participateInManualDiscounts = participateInManualDiscounts;
    }

    public Integer getParticipateInManualDiscounts()
    {
        return participateInManualDiscounts;
    }

    public void setPhone(String phone)
    {
        this.phone = phone;
    }

    public String getPhone()
    {
        return phone;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("categoryName", getCategoryName())
                .append("categoryCode", getCategoryCode())
                .append("sortOrder", getSortOrder())
                .append("projectCount", getProjectCount())
                .append("userMiniProgramSelectable", getUserMiniProgramSelectable())
                .append("fullOrderDiscount", getFullOrderDiscount())
                .append("continueWithMembershipDiscount", getContinueWithMembershipDiscount())
                .append("discountMethod", getDiscountMethod())
                .append("participateInMinimumConsumption", getParticipateInMinimumConsumption())
                .append("participateInMembershipPoints", getParticipateInMembershipPoints())
                .append("participateInManualDiscounts", getParticipateInManualDiscounts())
                .append("phone", getPhone())
                .toString();
    }
}
